﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Servico.Bovespa.Carteira.Service.ServiceContract;
         
namespace Sinacor.Servico.Bovespa.Carteira.Service.ServiceImplementation
{
    [SinacorServiceBehavior]
    public class Carteira : ServiceContract.ICarteira
    {
        public DataContract.Response.CarteiraResponse ConsultarMenorCarteira(DataContract.Request.ConsultarMenorCarteiraRequest pConsultarMenorCarteira)
        {
            //Crio o objeto de business logic
            BusinessLogic.Carteira blCarteira = new Sinacor.Servico.Bovespa.Carteira.BusinessLogic.Carteira();

            //Traduzo o retorno do método da bl para o response contract adequado
            return Translator.TranslateBetweenCarteiraAndCarteiraResponse.TranslateCarteiraToCarteiraResponse(
                //Chamo o método da businesslogic adequado
                blCarteira.ConsultarMenorCarteira(
                    //Traduzo o parâmetro de entrada para o BusinessEntity adequada.
                    Translator.TranslateBetweenConsultarMenorCarteiraRequestAndConsultarMenorCarteira.TranslateConsultarMenorCarteiraRequestToConsultarMenorCarteira(pConsultarMenorCarteira)
                )
            );
        }

        public bool ValidarCarteiraMercado(DataContract.Request.ValidarCarteiraMercadoRequest pValidarCarteiraMercado)
        {
            //Crio o objeto de business logic
            BusinessLogic.Carteira blCarteira = new Sinacor.Servico.Bovespa.Carteira.BusinessLogic.Carteira();

            //Traduzo o parâmetro recebido para o BusinessEntity adequado, chamo o método da bl e retorno seu resultado.
            return blCarteira.ValidarCarteiraMercado(Translator.TranslateBetweenValidarCarteiraMercadoAndValidarCarteiraMercadoRequest.TranslateValidarCarteiraMercadoRequestToValidarCarteiraMercado(pValidarCarteiraMercado));
        }
    }
}
